04-HTTPS동작확인

HTTPS 동작 확인

목표

SSL 인증서 적용 후 전체 시스템이 정상 동작하는지 검증하고, Week3.5 고가용성 구축을 위한 준비를 완료합니다.

완성된 아키텍처

현재 구조 (00단계 완료 후)

사용자 → Route 53 → Apache HTTPS → Tomcat → RDS
        도메인      Web서버         WAS서버

특징:

1단계: 기본 접속 테스트

HTTPS 접속 확인

루트 도메인 테스트:

https://yourdomain.com/webapp/

www 서브도메인 테스트:

https://www.yourdomain.com/webapp/

예상 결과:

HTTP 리다이렉트 확인

자동 리다이렉트 테스트:

http://yourdomain.com/webapp/
→ https://yourdomain.com/webapp/ (자동 전환)

http://www.yourdomain.com/webapp/
→ https://www.yourdomain.com/webapp/ (자동 전환)

리다이렉트 상태 코드 확인:

# 명령어로 리다이렉트 확인
curl -I http://yourdomain.com/webapp/

# 예상 결과: HTTP/1.1 301 Moved Permanently
# Location: https://yourdomain.com/webapp/

2단계: SSL 인증서 검증

브라우저에서 인증서 확인

  1. 브라우저 주소창 자물쇠 아이콘 클릭
  2. 인증서 보기 선택
  3. 확인 항목:

SSL 보안 등급 테스트

SSL Labs 보안 테스트:

  1. https://www.ssllabs.com/ssltest/ 접속
  2. 도메인 입력: yourdomain.com
  3. Submit 클릭
  4. 테스트 완료까지 2-3분 대기

목표 등급:

명령어로 SSL 확인

# SSL 연결 테스트
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com

# 인증서 체인 확인
openssl s_client -connect yourdomain.com:443 -showcerts

# SSL 핸드셰이크 테스트
curl -I https://yourdomain.com/webapp/

3단계: 애플리케이션 기능 테스트

전체 시스템 동작 확인

웹 애플리케이션 테스트 시나리오:

  1. 메인 페이지 접속

    https://yourdomain.com/webapp/
    
    • JSP 페이지 정상 렌더링 확인
    • CSS/JavaScript 정상 로드 확인
  2. 사용자 등록 기능

    • 새로운 사용자 정보 입력
    • 데이터베이스 저장 확인
  3. 사용자 조회 기능

    • 등록된 사용자 목록 표시
    • 데이터베이스 조회 확인

Apache → Tomcat 프록시 확인

Web 서버에서 프록시 동작 점검:

# Web 서버 접속
ssh -i webapp-keypair.pem ec2-user@Web서버-Public-IP

# Apache 액세스 로그 확인
sudo tail -f /var/log/httpd/yourdomain_access.log

# 별도 터미널에서 웹사이트 접속하여 로그 확인

정상 로그 예시:

192.168.1.100 - - [09/Sep/2025:10:30:45 +0000] "GET /webapp/ HTTP/1.1" 200 1024
192.168.1.100 - - [09/Sep/2025:10:30:46 +0000] "GET /webapp/style.css HTTP/1.1" 200 512

Tomcat → RDS 연결 확인

WAS 서버에서 데이터베이스 연결 점검:

# Web 서버에서 WAS 서버로 점프 접속
ssh ec2-user@WAS서버-Private-IP

# Tomcat 로그 확인
sudo tail -f /opt/tomcat/logs/catalina.out

# 별도 터미널에서 데이터베이스 관련 기능 테스트

4단계: 성능 및 안정성 테스트

응답 시간 측정

# 명령어로 응답 시간 확인
curl -w "Time: %{time_total}s\n" -o /dev/null -s https://yourdomain.com/webapp/

# 여러 번 테스트하여 평균 응답 시간 확인
for i in {1..10}; do
  curl -w "Request $i: %{time_total}s\n" -o /dev/null -s https://yourdomain.com/webapp/
done

목표 응답 시간:

동시 접속 테스트

# 간단한 부하 테스트 (10개 동시 요청)
for i in {1..10}; do
  curl -o /dev/null -s https://yourdomain.com/webapp/ &
done
wait

# 모든 요청이 정상 처리되는지 확인

SSL 핸드셰이크 성능

# SSL 핸드셰이크 시간 측정
curl -w "SSL Handshake: %{time_appconnect}s\nTotal: %{time_total}s\n" \
     -o /dev/null -s https://yourdomain.com/webapp/

5단계: Week3.5 준비 상태 점검

현재 시스템 정보 기록

Web 서버 정보:

WAS 서버 정보:

도메인 설정:

Week3.5 전환 시 변경사항 예고

ALB 구축 후 변경될 구조:

현재: 사용자 → Route 53 → Apache HTTPS → Tomcat
변경: 사용자 → Route 53 → ALB HTTPS → Apache HTTP → Tomcat

주요 변경사항:

  1. DNS 변경: Route 53에서 Web서버-IP → ALB-DNS로 변경
  2. SSL 종료점 변경: Apache → ALB로 이동
  3. Apache 설정: HTTPS → HTTP 전용으로 변경
  4. 인증서 관리: Let's Encrypt → Certificate Manager

완료 체크리스트

기본 접속 확인

SSL 인증서 검증

애플리케이션 기능

성능 및 안정성

Week3.5 준비

문제 해결

HTTPS 접속 문제

일반적인 해결방법:

  1. DNS 캐시 삭제

    # Windows
    ipconfig /flushdns
    
    # Mac
    sudo dscacheutil -flushcache
    
  2. 브라우저 캐시 삭제

    • Ctrl+Shift+Delete
    • 시크릿/프라이빗 모드 사용
  3. Apache 재시작

    sudo systemctl restart httpd
    

SSL 인증서 문제

갱신 테스트:

# 수동 갱신 테스트
sudo certbot renew --dry-run

# 실제 갱신 (30일 이내 만료시만)
sudo certbot renew

애플리케이션 동작 문제

로그 확인 순서:

  1. Apache 에러 로그: /var/log/httpd/error_log
  2. Apache 도메인 로그: /var/log/httpd/yourdomain_error.log
  3. Tomcat 로그: /opt/tomcat/logs/catalina.out

마무리

달성된 성과

Week1 + Week3 통합:

프로덕션 준비:

다음 단계 예고

Week3.5에서 추가될 기능:


도메인 연결 및 SSL 적용 완료

Week1의 도메인과 Week3의 웹 애플리케이션이 성공적으로 통합되어 프로덕션급 HTTPS 웹 서비스가 완성되었습니다.

Week3.5 고가용성 구축 진행: AWS EDU/Archive/조선대학교 AWS 멘토링/Week3.5-HA-Scalable-WebService/01-Multi-AZ-네트워크확장/01-가용영역이해및설계


관련 문서: AWS EDU/Archive/조선대학교 AWS 멘토링/Week3.5-HA-Scalable-WebService/00-도메인연결및SSL적용(선택)/03-SSL인증서적용, AWS EDU/Archive/조선대학교 AWS 멘토링/Week3.5-HA-Scalable-WebService/README, AWS EDU/Archive/조선대학교 AWS 멘토링/Week3.5-HA-Scalable-WebService/01-Multi-AZ-네트워크확장/01-가용영역이해및설계